<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;
use App\Model\Adminadd;
use App\Http\Controllers\Api\CommonApi;
use Qiniu\Storage\UploadManager;

class Adminads extends Controller
{
	/*
	* 广告列表页
	*/
	public function AdsList()
	{
        //查询数据库
		$adds = Adminadd::select('id', 'img', 'name', 'startdate', 'enddate')->get();

        //返回广告页面视图
    	return view('Admin.ads.ad-list', ['adds' => $adds]);
	}


    /*
     * 显示添加广告页面
     */
    public function AdminAddAds()
    {   
        //查询数据库
    	$addss = Adminadd::select('id', 'name', 'img', 'startdate', 'enddate')->get(); 

        //返回广告添加页面
    	return view('Admin.ads.ad-add', ['addss' => $addss]);
    }
    

    /*
    * 处理广告添加
    */
    public function AddAds(Request $request)
    {

        //验证数据是否合法
    	$this->validate($request, [
    		'name' => 'required',
    		'startdate' => 'required|date',
    		'enddate' => 'required|date',
    	],[
    		'name.required' => '广告名不能为空',
    		'startdate.required' => '投入时间不能为空',
    		'startdate.date' => '投入时间不正确',
    		'enddate.required' => '结束时间不能为空', 
    		'enddate.date' => '结束时间不能正确', 
    	]);

    	//调用文件上传类
    	$files = new CommonApi();

        //执行上传
    	$res = $files->uploadToQiNiu($request, 'picurl');
    
    	//判断失败返回的状态码
    	if ($res['status'] == 4403) {
    		return back()->with('message', '没有文件上传');
    	}
    	if ($res['status'] == 4401) {
    		return back()->with('message', '上传文件不合法');
    	}
        if ($res['status'] == 4044) {
            return back()->with('message', '上传失败');
        }

    	//接收传过来的数据
    	$name = $request->input('name');
    	$startdate = $request->input('startdate');
    	$enddate = $request->input('enddate');
    	$file = $request->file('picurl');

        //判断上传的是不是一个文件
    	if (!$file) {

    		return back()->with('message', '不是一个文件');
    	}
        
        //拿到data里面的图片名
    	$img = $res['data']['key'];

        //拿成功后插入到数据库
    	$image = DB::table('shop_user_ads')->insert(['name' => $name, 'startdate' => $startdate, 'enddate' => $enddate, 'img' => $img]);

        //判断是否插入成功
    	if ($image == 0) {

    		return back()->with('message', '插入失败');

    	} 

    	return back()->with('message', '插入成功');

    }

    /*
    * 显示编辑广告页面
    */
    public function AdminAdsEdit($id)
    {   
        //查询数据库
        $edi = Adminadd::select('id', 'name', 'img','startdate', 'enddate')->find($id);

        //返回编辑广告页面
        return view('Admin.ads.ad-edit', ['edi' => $edi]);
    }

    /*
    * 处理编辑广告
    */
    public function AdsEdit(Request $request)
    {
        //验证数据是否合法
        $this->validate($request, [
            'name' => 'required',
            'startdate' => 'required|date',
            'enddate' => 'required|date',
        ],[
            'name.required' => '广告名不能为空',
            'startdate.required' => '投入时间不能为空',
            'startdate.date' => '投入时间不正确',
            'enddate.required' => '结束时间不能为空', 
            'enddate.date' => '结束时间不能正确', 
        ]);

        //接收传过来的数据
        $name = $request->input('name');
        $startdate = $request->input('startdate');
        $enddate = $request->input('enddate');
        $file = $request->file('picurl');
        $id = $request->id;
        
        //判断数据是否修改
        if (!$file) {
   
            $ed = DB::table('shop_user_ads')->where('id', $id)->update(['name' => $name, 'startdate' => $startdate, 'enddate' => $enddate]);

            if ($ed == 0) {
                return back()->with('message','没有修改任何数据');
            }

            return back()->with('message', '修改成功');
        }

        //调用文件上传类
        $files = new CommonApi;

        //删除原有的图片
        $res = $files->deleteToQiNiu('shop_user_ads', 'img', $id);

        //上传新的图片
        $newpic = $files->uploadToQiNiu($request, 'picurl');

        //拿到data里面的图片名
        $img = $newpic['data']['key'];
       
        //拿到后修改数据库的数据
        $image = DB::table('shop_user_ads')->where('id', $id)->update(['name' => $name, 'startdate' => $startdate, 'enddate' => $enddate, 'img' => $img]);

        //判断是否修改成功
        if ($image == 0) {

            return back()->with('message', '修改失败');

        } 

        return back()->with('message', '修改成功');

    }

    /*
    * 处理删除广告
    */
    public function AdsDel($id)
    {
    	$del = Adminadd::where('id', $id)->delete();

    	if ($del) {

    		 return back()->with('message', '删除成功');
    	
    	}

    	 return back()->with('message', '删除失败');
    }

}

